A family of code coverage-based heuristics for effective fault localization

نویسندگان

  • W. Eric Wong
  • Vidroha Debroy
  • Byoungju Choi
چکیده

0164-1212/$ see front matter 2009 Elsevier Inc. A doi:10.1016/j.jss.2009.09.037 q This research was supported by the MKE (Minis Korea, under the ITRC (Information Technology Resea supervised by the NIPA (National IT Industry Prom (C1090-0902-0032)). * Corresponding author. Tel.: +1 972 883 6619; fax E-mail addresses: [email protected] (W. Eric Wo (V. Debroy), [email protected] (B. Choi). 1 In this paper, we use ‘‘software” and ‘‘program” ‘‘bugs” and ‘‘faults” interchangeably. Locating faults in a program can be very time-consuming and arduous, and therefore, there is an increased demand for automated techniques that can assist in the fault localization process. In this paper a code coverage-based method with a family of heuristics is proposed in order to prioritize suspicious code according to its likelihood of containing program bugs. Highly suspicious code (i.e., code that is more likely to contain a bug) should be examined before code that is relatively less suspicious; and in this manner programmers can identify and repair faulty code more efficiently and effectively. We also address two important issues: first, how can each additional failed test case aid in locating program faults; and second, how can each additional successful test case help in locating program faults. We propose that with respect to a piece of code, the contribution of the first failed test case that executes it in computing its likelihood of containing a bug is larger than or equal to that of the second failed test case that executes it, which in turn is larger than or equal to that of the third failed test case that executes it, and so on. This principle is also applied to the contribution provided by successful test cases that execute the piece of code. A tool, vDebug, was implemented to automate the computation of the suspiciousness of the code and the subsequent prioritization of suspicious code for locating program faults. To validate our method case studies were performed on six sets of programs: Siemens suite, Unix suite, space, grep, gzip, and make. Data collected from the studies are supportive of the above claim and also suggest Heuristics III(a), (b) and (c) of our method can effectively reduce the effort spent on fault localization. 2009 Elsevier Inc. All rights reserved.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A dynamic code coverage approach to maximize fault localization efficiency

Spectrum-based fault localization is amongst the most effective techniques for automatic fault localization. However, abstractions of program execution traces, one of the required inputs for this technique, require instrumentation of the software under test at a statement level of granularity in order to compute a list of potential faulty statements. This introduces a considerable overhead in t...

متن کامل

Entropy Guided Spectrum Based Bug Localization Using Statistical Language Model

Locating bugs is challenging but one of the most important activities in software development and maintenance phase because there are no certain rules to identify all types of bugs. Existing automatic bug localization tools use various heuristics based on test coverage, pre-determined buggy patterns, or textual similarity with bug report, to rank suspicious program elements. However, since thes...

متن کامل

Dynamic Code Coverage with Progressive Detail Levels

Nowadays, locating software components responsible for observed failures is one of the most expensive and error-prone tasks in the software development process. To improve the debugging process efficiency, some effort was already made to automatically assist the detection and location of software faults. This led to the creation of statistical debugging tools such as Tarantula, Zoltar and GZolt...

متن کامل

Bp Neural Network-Based Effective Fault Localization

In program debugging, fault localization identifies the exact locations of program faults. Finding these faults using an ad-hoc approach or based only on programmers’ intuitive guesswork can be very time consuming. A better way is to use a well-justified method, supported by case studies for its effectiveness, to automatically identify and prioritize suspicious code for an examination of possib...

متن کامل

Directed Test Generation for Improved Fault Localization

Fault-localization techniques that apply statistical analyses to execution data gathered from multiple tests are quite effective when a large test suite is available. However, if no test suite is available, what is the best approach to generate one? This paper investigates the fault-localization effectiveness of test suites generated according to several test-generation techniques based on comb...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Journal of Systems and Software

دوره 83  شماره 

صفحات  -

تاریخ انتشار 2010